The present invention relates to data synchronization technology and, more particularly, to methods for synchronizing data contained on portable computing devices.
Over the last two decades, personal computers have evolved from a technically sophisticated tool used primarily by a relatively small number of engineers and scientists to a veritable appliance notable for its ubiquity in both the home and the office. As personal computers have penetrated into a growing number of homes and computer software has become easier to use, even as the technical sophistication of society has increased, a growing number of households have two or more members that use the home computer. Frequently one or more of these household members also use a separate personal computer at their workplace.
In addition to home and workplace personal computers, portable computing devices, such as laptop computers, palmtop computers, personal digital assistants (PDAs), and the like, are also gaining in popularity. Palmtop computers and PDAs are small hand-held computers that can be easily carried around by the user, for example in a pocket, purse or belt clip for ready access. Palmtop computers and PDAs typically include database software that maintains various data such as personal appointments and schedules, contact information, to-do lists and the like. These portable computing devices may also include input devices such as small keyboards or touch sensitive screens (with handwriting recognition software) to enable the user to enter data directly into the device. Additional features and applications for palmtops are available and under development, including by way of example, e-mail functionality, Web surfing capabilities, word processing, and spread sheet software, and even global positioning and mapping features.
Many of the most useful functions associated with palmtop computers and other portable computing devices, such as schedule, contact, and task management functions, are also available on desk top computers. These portable and desk-based systems utilize the same underlying data. It would be inconvenient to have to -4 manually enter this data on both a user""s desk top computer and on a portable computing device. Moreover, such duplicative manual data entry would be subject to errors and inconsistencies. To avoid these disadvantages, synchronization software and hardware is generally available that automatically, or semi-automatically, conforms the data on the user""s portable computing device with the data on the user""s desk top computer or other primary computer system.
Synchronization software typically compares the data on one device with the data on the second device to identify differences, and updates the data on both devices, resolving data inconsistencies according to a preset priority algorithm. For example, some synchronization systems give precedence to the palmtop computer, copying all data from the palmtop computer to the desk top computer, without regard for the prior content on the desk top computer. Other methods use flags to identify records that have changed since the last synchronization, and update the changed records on the other device. Still other methods compare the data sets and prompt the user for input in reconciling changes. Another synchronization scheme maintains a separate file containing the data from the previous synchronization, and compares both the current desk top data set and the palmtop data set with the saved data set to identify the records that have changed. Examples of prior art synchronization methods are found, for example, in U.S. Pat. No. 6,243,705, No. 6,052,735, and No. 5,327,555.
Existing synchronization engines are designed to synchronize a single user to a single profile or data set on the desk top computer. This is a convenient method when a single user is the sole user of the desk top computer. However, if multiple persons are using the desk top computer, all of every users data may be combined in a single data set, which can become cumbersome and less useful. For example, a home computer may be used by several family members to maintain, for example, family-related schedule information. One or more of the family members may also have a palmtop computer that maintains the family member""s work-related and family-related schedule information. If this family member synchronizes the palmtop computer with the home computer, then all of the work-related schedule information typically will be added to the home schedule data, which may not be desired.
Additionally, in the example above, the family member may have home-related schedule data that is relevant to only some of the remaining family members. If all family members also have palmtop computers, existing synchronization systems might copy the schedule data to all of the family members"" palmtop schedules. This will result in irrelevant scheduling data on some of the family members"" palmtop computers.
There is therefore a need for a data synchronization system that will allow multiple users to synchronize data selectively.
The present invention discloses a method and apparatus for selectively synchronizing computer-stored data sets, such as schedule data. The data sets may be disposed on different computers. The selective synchronization permits multiple users to each synchronize separate data sets from personal portable computing devices with a third data set on a shared computer, while only exporting from each personal device selected records and only importing into each personal device relevant records.
In an embodiment of the present invention, a user data structure identifying all of the relevant data sets is provided on each computer. The individual records in the data set each include a share field that contains data specifying which of the data sets are to synchronize with that record. When a first data set on one computer is synchronized with a second data set on another computer, the data sets will be updated such that new records in the first data set are added to the second data set only for new records wherein the corresponding share field specifies the second data set, and new records in the second data set are added to the first data set only for new records wherein the corresponding share field specifies the first data set. Similarly, in an aspect of the invention, modified records in the first data set will be updated in the second data set only for those records wherein the share field specifies the second data set.
In an aspect of the invention, the user data structure identifies the data sets if modifiable by the user, and when the first and second data sets are synchronized, the user data structure is synchronized prior to synchronizing the data sets.
In another aspect of the invention the data sets comprise schedule data records, such as time, date, duration, and the like for a plurality of schedule events.
In another aspect of the invention, at least one of the computers may be a palmtop computer.
In another aspect of the invention, a third data set is provided on a second portable computer, the first and third computers being selectively synchronizable with the second computer.
In an embodiment of the invention, an apparatus for selectively synchronizing a first and a second data set that each include a profile field identifying one or more of the data sets. This embodiment includes a first computer having a first user file containing user profile data identifying each data set and a first data file containing the first data set. A second computer includes a second user file containing user profile data identifying each data set and a second data file containing the second data set. A communications link for linking said first and second computers, and means for updating the first and second data sets with data from the other data set that is identified for the first and second data set.